import {
  createStore,
  combineReducers
} from 'redux'

// 处理 todo 相关的逻辑
function todoList(todoList = [], action) {
  switch (action.type) {
    case "TODOLIST_ADD":
      return [
        ...todoList,
        {
          id: Date.now(),
          todo: action.todo,
          state: false,
        }
      ]
    case "TODOLIST_REMOVE":
      return todoList.filter(item => item.id !== action.id)
    case "TODOLIST_CHANGESTATE":
      return todoList.map(item => {
        if (item.id === action.id) {
          item.state = !item.state;
        }
        return item;
      })
    case "TODOLIST_CHANGETODO":
      return todoList.map(item => {
        if (item.id === action.id) {
          item.todo = action.val;
        }
        return item;
      })
    case "TODOLIST_REMOVECOMPLETE":
      return todoList.filter(item => !item.state)
    default:

      break;
  }
  return todoList;
}


export default createStore(combineReducers({
  todoList
}));